home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 22
/
AMIGAplus Sonderheft 22 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Vollversion
/
BankManager Version 1.6
/
BankManager
/
COMMERZBANK.MPL
< prev
next >
Wrap
Text File
|
1999-11-08
|
16KB
|
961 lines
'
' Bankkommunikationsskript für die Commerzbank.
'
' Erste Erstellung: 30.10.1997
' Letzte Änderung : 05.03.1999
' Autor: Christian Kaben
'
LISTFILE$ := "BankManager:LISTFILE.PBK"
EINUEB$ := "BankManager:EINUEB"
SAMUEB$ := "BankManager:SAMUEB"
SAMLST$ := "BankManager:SAMLST"
KSTAND$ := "BankManager:KTOSTAND.PBK"
AUSZUG$ := "BankManager:AUSZUG.PBK"
UEBEXTENSION$ := ".PBK"
'Maximale Länge von Empfänger- und Textfeldern.
MAX_EM_LEN:=27
MAX_TX_LEN:=27
open #1,LISTFILE$,"r"
'Version
INPUT$:=input$ #1
'Einzelüberweisung
INPUT$:=input$ #1
EINZUEB := val(INPUT$)
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'überweisung
INPUT$:=input$ #1
'Sammelüberweisung
INPUT$:=input$ #1
SAMMUEB := val(INPUT$)
'Sammellastschrift
INPUT$:=input$ #1
SAMMLAS := val(INPUT$)
'Kontoauszüge holen?
INPUT$:=input$ #1
AUSZUG := val(INPUT$)
'Datum letzter Kontoauszug
INPUT$:=input$ #1
LAUSZUG$ := INPUT$
'Kontostand abfragen?
INPUT$:=input$ #1
STAND := val(INPUT$)
'PIN
INPUT$:=input$ #1
PIN$ := INPUT$
'Startseite
INPUT$:=input$ #1
STARTSEITE$ := INPUT$
'Kontonummer
INPUT$:=input$ #1
KONTONR$ := INPUT$
close #1
if(STARTSEITE$ <> "")
' Erst einmal auf die Nullseite springen. Damit
' verlasse ich ggf. auch einen ER (normalerweise).
send(ini$+"0"+ter$)
wait(1,0,0,30000)
' Bankrechner aufrufen.
send(ini$+STARTSEITE$+ter$)
wait(1,0,0,30000)
send(ter$)
wait(1,0,0,30000)
send(KONTONR$)
' if(len(KONTONR$) < 10)
' send(ter$)
' endif
wait(1,0,0,30000)
send(PIN$)
wait(1,0,0,30000)
send("19")
wait(1,0,0,30000)
' Prüfen, ob Verbindung hergestellt.
LINE$ := line$(24)
if(left$(LINE$,1) <> " ")
end
endif
endif
if(STAND > 0)
gosub KTOSTAND:
endif
MAXUEB := EINZUEB
if(MAXUEB > 0)
gosub EINZUEB:
endif
MAXUEB := SAMMUEB
if(MAXUEB > 0)
gosub SAMMUEB:
endif
MAXUEB := SAMMLAS
if(MAXUEB > 0)
gosub SAMMLAS:
endif
if(AUSZUG > 0)
gosub UMSAETZE:
endif
ENDE:
end
'
' K O N T O S T A N D
'
KTOSTAND:
' Kontostandmaske aufrufen.
'send("2")
'wait(1,0,0,30000)
'send(ter$)
'wait(1,0,0,30000)
DATUM$ := ""
ZEIT$ := ""
STAND$ := ""
' Datum auslesen
LINE$ := line$(20)
while(left$(LINE$,1) <> " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
DATUM$ := DATUM$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
' Zeit auslesen
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(left$(LINE$,1) <> " ")
ZEIT$ := ZEIT$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
' Kontostand auslesen
LINE$ := line$(17)
LINE$ := mid$(LINE$,20,99)
while(left$(LINE$,1) = " ")
LINE$ := mid$(LINE$,2,40)
wend
if(len(LINE$) = 0)
return
endif
while(len(LINE$) > 1)
STAND$ := STAND$ + left$(LINE$,1)
LINE$ := mid$(LINE$,2,40)
wend
open #1,KSTAND$,"w"
print #1,DATUM$
print #1,ZEIT$
print #1,STAND$
close #1
send("9")
wait(1,0,0,30000)
send("9")
wait(1,0,0,30000)
return
'
' E I N Z E L Ü B E R W E I S U N G E N
'
EINZUEB:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := MAXUEB
COUNTNAME$ := EINUEB$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
' Überweisungseingabemaske aufrufen.
send("3")
wait(1,0,0,30000)
send("1")
wait(1,0,0,30000)
TAN$ := ""
UNTERSCHRIFT$ := ""
BASELINE := 8
' Ab hier Einspielen der Datensätze.
for i:=1 to MAXUEB
' TAN als leer initialisieren, da jeder Auftrag ja seine
' eigene TAN hat (im Gegensatz zu den Sammlern).
TAN$ := ""
UNTERSCHRIFT$ := ""
GLOBALERROR := 0
FILENAME$ := EINUEB$+str$(i-1)+UEBEXTENSION$
' Einspielen des aktuellen Datensatzes.
gosub SENDENTRY:
'split(10)
'print GLOBALERROR
'sleep(5000)
'split(0)
if(GLOBALERROR = -1)
'split(10)
'print "NEXT erkannt"
'sleep(3000)
'split(0)
goto LABEL11:
next
endif
send(ter$)
wait(1,0,0,30000)
send("19")
wait(1,0,0,30000)
LABEL11:
' Vergleich des aktuellen Datensatzes mit der Anzeige seitens Btx.
GLOBALERROR := 0
FILENAME$ := EINUEB$+str$(i-1)+UEBEXTENSION$
'split(5)
'print "1"
'sleep(1000)
'split(0)
loop11:
gosub CHECK:
if(GLOBALERROR=-1)
goto LABEL12:
next
endif
'split(5)
'print "2"
'sleep(1000)
'split(0)
if(GLOBALERROR <> 0)
' Anzeige weicht vom Eingespielten ab. Also erneut einspielen.
send("1")
wait(1,0,0,30000)
gosub SENDENTRY:
if(GLOBALERROR=-1)
goto LABEL12:
next
endif
goto loop11:
endif
'split(5)
'print "3"
'sleep(1000)
'split(0)
send(ter$)
wait(1,0,0,30000)
if(TAN$ = "")
split(5)
print "Keine TAN vorhanden !!! Bitte jetzt eingeben:"
TAN$ := input$
' sleep(10000)
split(0)
' goto ENDE:
endif
send(TAN$)
wait(1,0,0,30000)
if(UNTERSCHRIFT$ = "")
split(5)
print "Keine Unterschrift vorhanden !!! Bitte jetzt eingeben:"
UNTERSCHRIFT$ := input$
' sleep(10000)
split(0)
' goto ENDE:
endif
send(UNTERSCHRIFT$)
wait(1,0,0,30000)
send(ter$)
wait(1,0,0,30000)
send("19")
wait(1,0,0,30000)
' Erfolgreich eingespielten Datensatz als erledigt markieren.
gosub DELETEENTRY:
if(i < MAXUEB)
' Es kommen noch mehr Überweisungen.
send(ter$)
else
send("9")
wait(1,0,0,30000)
send("9")
endif
wait(1,0,0,30000)
LABEL12:
next
return
'
' S A M M E L Ü B E R W E I S U N G E N
'
SAMMUEB:
' Test, ob nicht schon alle versandt worden sind.
COUNTMAX := 1
COUNTNAME$ := SAMUEB$
gosub COUNTOPEN:
if(COUNTMAX = 0)
return
endif
send("30")
wait(1,0,0,30000)
send(ter$)
send("1")
wait(1,0,0,30000)
if(errno<>0)
wait(1,0,0,30000)
endif
LINE$ := line$(7)
LSTNR$ := mid$(LINE$,15,6)
'split(10)
'print LSTNR$
'sleep(2000)
'split(0)
TAN$ := ""
UNTERSCHRIFT$ := ""
BASELINE := 10
' Ab hier Einspielen der Datensätze.
for i:=1 to MAXUEB
GLOBALERROR := 0
FILENAME$ := SAMUEB$+str$(i-1)+UEBEXTENSION$
gosub SENDENTRY:
'split(10)
'print GLOBALERROR
'sleep(5000)
'split(0)
if(GLOBALERROR=-1)
'split(10)
'print "NEXT erkannt"
'sleep(3000)
'split(0)
goto LABEL21:
next
endif
if(i < MAXUEB)
' Es folgen noch weitere Überweisungen.
send(ter$)
else
' Es folgen keine weitere Überweisungen.
send("9")
endif
wait(1,0,0,30000)
LABEL21:
next
send(ter$)
wait(1,0,0,30000)
send(LSTNR$)
send("3")
wait(1,0,0,30000)
' Ab hier Vergleich der Datensätze mit der Anzeige seitens Btx.
for i:=1 to MAXUEB
GLOBALERROR := 0
FILENAME$ := SAMUEB$+str$(i-1)+UEBEXTENSION$
'split(5)
'print "1"
'sleep(1000)
'split(0)
loop21:
gosub CHECK:
if(GLOBALERROR=-1)
goto LABEL22:
next
endif
'split(5)
'print "2"
'sleep(1000)
'split(0)
if(GLOBALERROR <> 0)
send("1")
wait(1,0,0,30000)
gosub SENDENTRY:
if(GLOBALERROR=-1)
goto LABEL22:
next
endif
goto loop21:
endif
'split(5)
'print "3"
'sleep(1000)
'split(0)
send(ter$)
gosub DELETEENTRY:
wait(1,0,0,30000)
LABEL22:
next
if(TAN$ = "")
split(5)
print "Keine TAN vorhanden !!!"
sleep(10000)
split(0)
end
endif
send(TAN$)
wait(1,0,0,30000)
send("2")
wait(1,0,0,30000)
send("0")
return
'
' S A M M E L L A S T S C H R I F T E N
'
SAMMLAS:
' Nicht implementiert.
return
'
' U M S Ä T Z E
'
UMSAETZE:
' Umsatzmaske aufrufen.
send("2")
wait(1,0,0,30000)
send(ter$)
wait(1,0,0,30000)
send("2")
wait(1,0,0,30000)
' Datumsmaske aufrufen.
send("3")
wait(1,0,0,30000)
'split(10)
if(LAUSZUG$ = "")
LAUSZUG$ := date$
endif
if(len(LAUSZUG$) < 6)
LAUSZUG$ := date$
endif
if(left$(LAUSZUG$,2) = " ")
LAUSZUG$ := date$
endif
LINE$ := mid$(LAUSZUG$,1,2) + mid$(LAUSZUG$,4,2)
send(LINE$)
wait(1,0,0,30000)
DATE$ := date$
LINE$ := mid$(DATE$,1,2) + mid$(DATE$,4,2)
send(LINE$)
wait(1,0,0,30000)
send(ter$)
wait(1,0,0,30000)
LINE$ := line$(13)
VALUE := val(mid$(LINE$,10,4))
if(VALUE <> 0)
send(ter$)
wait(1,0,0,30000)
open #4,AUSZUG$,"a"
gosub LESEUMSATZ:
close #4
else
LAUSZUG$ := date$
gosub RESETADATE:
endif
'split(0)
send("9")
wait(1,0,0,30000)
send("9")
wait(1,0,0,30000)
return
'
' B I B L I O T H E K
' ===================
'
' ===================
CHECKENTRY:
STRIPBLANKS$ := MID$
gosub STRIPBLANKS:
gosub STRIPLEADS:
if(INPUT$ <> STRIPBLANKS$)
sp